#pragma once

#ifndef __WxvtkFTGLChineseCharacterMapper_h
#define __WxvtkFTGLChineseCharacterMapper_h

#include "WxvtkFreeTypeUtilitiesUnicode.h"
#include "WxvtkTextPropertyUnicode.h"
#include "WxExtentionExports.h"

#include <vtkOpenGLFreeTypeTextMapper.h>

class WxExtention_EXPORT WxvtkFTGLChineseCharacterMapper :public vtkTextMapper
{

public:
        vtkTypeRevisionMacro(WxvtkFTGLChineseCharacterMapper,vtkTextMapper);
        static WxvtkFTGLChineseCharacterMapper *New();
	virtual void PrintSelf(ostream& os, vtkIndent indent);

	// Description:
	// Actally draw the text.
	void RenderOverlay(vtkViewport* viewport, vtkActor2D* actor);

	// Description:
	// Release any graphics resources that are being consumed by this actor.
	// The parameter window could be used to determine which graphic
	// resources to release.
	virtual void ReleaseGraphicsResources(vtkWindow *);

	// Description:
	// What is the size of the rectangle required to draw this
	// mapper ?
	virtual void GetSize(vtkViewport* viewport, int size[2]);


protected:
        WxvtkFTGLChineseCharacterMapper(void);
        ~WxvtkFTGLChineseCharacterMapper(void);

	vtkTimeStamp  SizeBuildTime;
	int LastSize[2];
	int LastLargestDescender;

private:
        WxvtkFTGLChineseCharacterMapper(const WxvtkFTGLChineseCharacterMapper&);  // Not implemented.
        void operator=(const WxvtkFTGLChineseCharacterMapper&);  // Not implemented.
	
	
};

#endif
